// /utils/distance.js

/**
 * 根据经纬度计算两点之间的距离（米）
 * @param {number} lat1 
 * @param {number} lng1 
 * @param {number} lat2 
 * @param {number} lng2 
 * @returns {number} 距离，单位米
 */
export function getDistance(lat1, lng1, lat2, lng2) {
	if (!lat1 || !lng1 || !lat2 || !lng2) {
		return null;
	}
	const R = 6371e3; // 地球半径，单位米
	const φ1 = lat1 * Math.PI / 180;
	const φ2 = lat2 * Math.PI / 180;
	const Δφ = (lat2 - lat1) * Math.PI / 180;
	const Δλ = (lng2 - lng1) * Math.PI / 180;

	const a = Math.sin(Δφ / 2) * Math.sin(Δφ / 2) +
		Math.cos(φ1) * Math.cos(φ2) *
		Math.sin(Δλ / 2) * Math.sin(Δλ / 2);
	const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));

	return R * c;
}